home *** CD-ROM | disk | FTP | other *** search
- package engine
- {
- import copy.CopyBank;
- import flash.display.MovieClip;
- import flash.events.Event;
- import flash.events.KeyboardEvent;
- import flash.events.MouseEvent;
- import flash.geom.Rectangle;
- import flash.ui.Keyboard;
-
- [Embed(source="/_assets/assets.swf", symbol="engine.GameUI")]
- public class GameUI extends MovieClip
- {
-
-
- private var _gameoverScreenTimer:Number = 0;
-
- public var _btn_sound:MovieClip;
-
- private var _scoreOffset:Number = 0;
-
- private var _lives:Number;
-
- private var _scoreStripArray:Array;
-
- public var _victoryScreen:MovieClip;
-
- public var _missionScreen:MovieClip;
-
- private var _currentMessageVibe:String;
-
- public var _goalIndicator:MovieClip;
-
- private var _messageTimer:Number = 0;
-
- public var _fuelWarning:MovieClip;
-
- private var _victoryScreenTimer:Number = 0;
-
- public var _fuelDisplay:MovieClip;
-
- private var _fuelTFrame:Number = 0;
-
- public var _livesDisplay:MovieClip;
-
- private var _missionScreenTimer:Number = 0;
-
- private var _fuel:Number;
-
- public var _scoreDisplay:MovieClip;
-
- private var _scoreArray:Array;
-
- private var _score:Number;
-
- public var _btn_embed:MovieClip;
-
- public var _btn_menu:MovieClip;
-
- private var _fuelCFrame:Number = 0;
-
- private var _message:String;
-
- public var _popupGuys:MovieClip;
-
- public var _btn_pause:MovieClip;
-
- public var _soundOnOff:MovieClip;
-
- public var _gameoverScreen:MovieClip;
-
- public var _imgLogoDateSmall:MovieClip;
-
- public function GameUI()
- {
- _messageTimer = 0;
- _missionScreenTimer = 0;
- _victoryScreenTimer = 0;
- _gameoverScreenTimer = 0;
- _fuelTFrame = 0;
- _fuelCFrame = 0;
- _scoreOffset = 0;
- super();
- _livesDisplay.stop();
- _fuelDisplay.stop();
- _scoreDisplay.stop();
- _scoreArray = new Array();
- _missionScreen.visible = false;
- _scoreDisplay.scrollRect = new Rectangle(0,4,154,21);
- }
-
- public function setVictoryScreen() : *
- {
- _victoryScreenTimer = 130;
- _victoryScreen.visible = true;
- _victoryScreen.gotoAndPlay(1);
- }
-
- public function setGameoverScreen() : *
- {
- trace("SET GAME OVER SCREEN");
- _gameoverScreenTimer = 82;
- _gameoverScreen.visible = true;
- _gameoverScreen.resetInfo();
- }
-
- public function init() : *
- {
- addEventListener("enterFrame",onGameUIEnterFrame);
- _scoreArray = [0,0,0,0,0,0,0,0,0,0,0,0,0];
- _scoreStripArray = [_scoreDisplay._0,_scoreDisplay._1,_scoreDisplay._2,_scoreDisplay._3,_scoreDisplay._4,_scoreDisplay._5,_scoreDisplay._6,_scoreDisplay._7,_scoreDisplay._8,_scoreDisplay._9,_scoreDisplay._10,_scoreDisplay._11,_scoreDisplay._12];
- _fuelDisplay.gotoAndStop(99);
- _missionScreen.alpha = 1;
- addEventListener(Event.ADDED_TO_STAGE,onAddedToStage);
- _missionScreen._beginButton.addEventListener(MouseEvent.CLICK,onBeginClick);
- _missionScreen._beginButton.buttonMode = true;
- _missionScreen._beginButton._tHolder._copy.text = CopyBank.Instance.BEGIN;
- _btn_pause.addEventListener("CLICK",onBtnClick);
- _btn_menu.addEventListener("CLICK",onBtnClick);
- _btn_embed.addEventListener("CLICK",onBtnClick);
- _btn_sound.addEventListener("CLICK",onBtnClick);
- _btn_pause._tHolder._copy.text = CopyBank.Instance.PAUSE;
- _btn_menu._tHolder._copy.text = CopyBank.Instance.MENU;
- _btn_embed._tHolder._copy.text = CopyBank.Instance.SHARE;
- _btn_sound._tHolder._copy.text = CopyBank.Instance.SOUND;
- _imgLogoDateSmall.gotoAndStop(CopyBank.Instance.LANGUAGE);
- _victoryScreen._line1._tHolder._copy.text = CopyBank.Instance.MISSION;
- _victoryScreen._line2._tHolder._copy.text = CopyBank.Instance.COMPLETE;
- }
-
- private function onGameUIEnterFrame(event:*) : *
- {
- var gNum:Number = NaN;
- var i:* = undefined;
- var strip:MovieClip = null;
- var tY:Number = NaN;
- gNum = 1;
- if(WorldScene.Instance.MissionDetails.StartLoc.x != -1)
- {
- if(WorldScene.Instance.MissionDetails.GoalParamaters[0].Type == "Ring")
- {
- gNum = 3;
- }
- if(WorldScene.Instance.MissionDetails.GoalParamaters[0].Type == "Cage")
- {
- gNum = 2;
- }
- _goalIndicator._goalType.gotoAndStop(gNum);
- _goalIndicator._num.text = WorldScene.Instance.MissionDetails.GoalParamaters[0].Count;
- }
- --_messageTimer;
- if(_messageTimer > 0)
- {
- if(_popupGuys.y < -95)
- {
- _popupGuys._speech.scaleX += (1 - _popupGuys._speech.scaleX) * 0.25;
- _popupGuys._speech.scaleY = _popupGuys._speech.scaleX;
- }
- _popupGuys.visible = true;
- _popupGuys.y += (-118 - _popupGuys.y) * 0.25;
- }
- else
- {
- _popupGuys._speech.scaleX += (0 - _popupGuys._speech.scaleX) * 0.25;
- _popupGuys._speech.scaleY = _popupGuys._speech.scaleX;
- _popupGuys.y += (51 - _popupGuys.y) * 0.12;
- if(_popupGuys.y > 49)
- {
- _popupGuys.visible = false;
- }
- }
- for(i = 0; i < _scoreArray.length; i++)
- {
- strip = _scoreStripArray[(i + _scoreOffset) % 13];
- tY = _scoreArray[i] / 9 * -160;
- strip.y += (tY - strip.y) * 0.1;
- }
- if(Engine.Instance.State == Engine.Instance.STATES.MissionScreen)
- {
- _missionScreen.visible = true;
- _missionScreen.alpha += (1 - _missionScreen.alpha) * 0.25;
- }
- else
- {
- _missionScreen.alpha += (0 - _missionScreen.alpha) * 0.25;
- if(_missionScreen.alpha < 0.03)
- {
- _missionScreen.visible = false;
- }
- }
- if(Engine.Instance.State == Engine.Instance.STATES.Gameover)
- {
- _gameoverScreen.visible = true;
- _gameoverScreen.alpha += (1 - _gameoverScreen.alpha) * 0.25;
- }
- else
- {
- _gameoverScreen.alpha += (0 - _gameoverScreen.alpha) * 0.25;
- if(_gameoverScreen.alpha < 0.03)
- {
- _gameoverScreen.visible = false;
- }
- }
- if(Engine.Instance.State == Engine.Instance.STATES.Gameplay && _victoryScreenTimer > 0)
- {
- if(_victoryScreenTimer == 75)
- {
- Main.Instance.playSound("success");
- WorldScene.Instance.displayBonusScore();
- }
- if(_victoryScreenTimer < 75)
- {
- _victoryScreen.visible = true;
- _victoryScreen.alpha += (1 - _victoryScreen.alpha) * 0.125;
- }
- --_victoryScreenTimer;
- if(_victoryScreenTimer == 0)
- {
- Engine.Instance.startMission();
- _victoryScreen.alpha = 0;
- _victoryScreenTimer = -1;
- _victoryScreen.visible = false;
- }
- }
- else if(Engine.Instance.State != Engine.Instance.STATES.Paused)
- {
- _victoryScreen.alpha = 0;
- _victoryScreenTimer = -1;
- _victoryScreen.visible = false;
- }
- }
-
- public function updateSoundDisplay() : *
- {
- if(Main.Instance.SoundOn)
- {
- _soundOnOff.gotoAndStop(1);
- }
- else
- {
- _soundOnOff.gotoAndStop(2);
- }
- }
-
- public function updateFuel(num:Number) : *
- {
- _fuelTFrame = 100 * (num / 100);
- _fuelCFrame += (_fuelTFrame - _fuelCFrame) * 0.25;
- _fuelDisplay.gotoAndStop(Math.floor(_fuelCFrame));
- if(num == 10)
- {
- Engine.Instance.setPopupMessage(CopyBank.Instance.LowFuel);
- }
- if(num < 10)
- {
- _fuelWarning.alpha += (Math.sin(num * 8) - _fuelWarning.alpha) * 0.25;
- }
- else
- {
- _fuelWarning.alpha *= 0.9;
- }
- }
-
- public function removeListeners() : *
- {
- removeEventListener("enterFrame",onGameUIEnterFrame);
- }
-
- public function updateScore(num:Number) : *
- {
- var ss:* = null;
- var esc:Number = NaN;
- ss = String(num);
- esc = 0;
- if(ss.length < 13)
- {
- _scoreOffset = 13 - ss.length;
- }
- else
- {
- _scoreOffset = 0;
- }
- while(ss.length < 13)
- {
- ss += "0";
- esc++;
- if(esc > 13)
- {
- trace("### there has been a gastronomical score display failure. abort mission");
- break;
- }
- }
- _scoreArray = [Number(ss.substr(0,1)),Number(ss.substr(1,1)),Number(ss.substr(2,1)),Number(ss.substr(3,1)),Number(ss.substr(4,1)),Number(ss.substr(5,1)),Number(ss.substr(6,1)),Number(ss.substr(7,1)),Number(ss.substr(8,1)),Number(ss.substr(9,1)),Number(ss.substr(10,1)),Number(ss.substr(11,1)),Number(ss.substr(12,1))];
- }
-
- public function setMessage(msg:String, vibe:String) : *
- {
- if(!_popupGuys.visible || _currentMessageVibe == vibe)
- {
- if(vibe == "good")
- {
- if(!_popupGuys.visible)
- {
- _popupGuys._charSource.gotoAndStop(Math.floor(Math.random() * (6 - 0.01)) + 1);
- }
- }
- else if(!_popupGuys.visible)
- {
- _popupGuys._charSource.gotoAndStop(Math.floor(Math.random() * (5 - 0.01)) + 7);
- }
- _messageTimer = 100;
- _popupGuys._speech._copy.text = msg;
- }
- }
-
- private function onAddedToStage(event:*) : *
- {
- stage.addEventListener(KeyboardEvent.KEY_DOWN,UIkeyDown);
- }
-
- public function initCopy() : *
- {
- _gameoverScreen.initCopy();
- }
-
- public function updateLives(num:Number, inFlashDisplay:Boolean = false) : *
- {
- if(num < 0)
- {
- num = 0;
- }
- if(num > 3)
- {
- num = 3;
- }
- _livesDisplay.gotoAndStop(num + 1);
- if(inFlashDisplay)
- {
- _livesDisplay._flash.gotoAndPlay(2);
- }
- }
-
- private function onBtnClick(event:*) : *
- {
- switch(event.target)
- {
- case _btn_pause:
- Engine.Instance.pauseToggle();
- break;
- case _btn_menu:
- Main.Instance.endGame();
- break;
- case _btn_embed:
- Main.Instance.Tracker.trackPageview("NATM2_Flight/menu/share");
- Main.Instance.shareGame();
- Engine.Instance.pauseToggle(true);
- break;
- case _btn_sound:
- Main.Instance.toggleSound(_soundOnOff);
- }
- }
-
- private function UIkeyDown(event:*) : *
- {
- switch(event.keyCode)
- {
- case Keyboard.ENTER:
- onBeginClick(event);
- }
- }
-
- public function setMissionScreen(missionNumber:Number) : *
- {
- if(missionNumber == 1)
- {
- _missionScreen.alpha = 1;
- }
- _missionScreenTimer = 82;
- _missionScreen.visible = true;
- switch(WorldScene.Instance.MissionDetails.PrimaryGoalType)
- {
- case "Tablets":
- _missionScreen._missionGraphic.gotoAndPlay("Tablets");
- break;
- case "Cages":
- _missionScreen._missionGraphic.gotoAndPlay("Cages");
- break;
- case "Rings":
- _missionScreen._missionGraphic.gotoAndPlay("Rings");
- }
- _missionScreen._missionCopy._tHolder_mission._copy.text = CopyBank.Instance.MISSION + ": " + String(missionNumber);
- _missionScreen._missionCopy._tHolder_missionBrief._copy.text = WorldScene.Instance.MissionDetails.Description;
- }
-
- private function onBeginClick(event:*) : *
- {
- if(Engine.Instance.State == Engine.Instance.STATES.MissionScreen)
- {
- Engine.Instance.startGameplay();
- }
- }
- }
- }
-